import {
    mapGetters
} from 'vuex'

export default {
    computed: {
        ...mapGetters('m_cart', ['total'])
    },
    watch: {
        total() {
            this.setBadge()
        }
    },
    onShow() {
        // 页面显示时，更新购物车总数
        this.setBadge()
    },
    methods: {
        // 设置购物车图标上的数字
        setBadge() {
            // 确保total是有效数字，避免undefined或null导致错误
            const badgeCount = Number(this.total) || 0;
            
            // 添加try-catch防止在非tabBar页面调用报错
            try {
                // 只有当数量大于0时才显示角标
                if (badgeCount > 0) {
                    uni.setTabBarBadge({
                        index: 2,
                        // 必须是字符型
                        text: badgeCount.toString(),
                        fail: () => {
                        }
                    })
                } else {
                    // 当数量为0时，移除角标
                    uni.removeTabBarBadge({
                        index: 2,
                        fail: () => {
                        }
                    })
                }
            } catch (e) {
                
            }
        }
    }
}